
import sys, os
import cPickle as pickle
from GenericDao import GenericDao


class Alumnos_LeccionesDao(GenericDao):

    def __init__(self):
        self.BDAlumnoLeccion = 'bdcontenidos.listaTareas'

    def guardar(self, T):
	self.Tareas = self.get_entidad('title', self.BDAlumnoLeccion)
	if(self.Tareas == None):
		self.Tareas = {}
	idAlumnoLeccion = str(T.idAlumno) +'-'+ str(T.idLeccion)
        self.Tareas[idAlumnoLeccion] = T
	self.guardar('title', self.BDAlumnoLeccion , self.Tareas)

    def obtener(self, idAlumno, idLeccion):
	self.Tareas = self.get_entidad('title', self.BDAlumnoLeccion )
	idAlumnoLeccion = str(idAlumno) +'-'+ str(idLeccion)

	if(self.Tareas == None):
		return None
	else:
		try:
			tmp = self.Tareas[idAlumnoLeccion]
			return tmp
		except:
			return None

    def obtener(self):
	self.Tareas = self.get_entidad('title', self.BDAlumnoLeccion)
	if(self.Tareas == None):
		self.Tareas = {}
	return self.Tareas


    def obtenerTareasFaltantes(self, desdeLeccion):
	self.Tareas = self.obtener()
	self.TareasRet = {}
	for elem in self.Tareas:
		objeto = self.Tareas[elem]
		idSes = int(objeto.getIdSesion())
		if idSes >= desdeLeccion :
			self.TareasRet[elem] = objeto
	return self.TareasRet

    def guardarTeoriaResuelta(self, tResuelta):
	self.guardarTarea(tResuelta)


    def guardarEjercicioResuelto(self, eResuelto):
	self.guardarTarea(eResuelto)
		

    def obtenerContenidoResuelto(self, nLec, nCont, tipo):
	if(tipo == 'E'):
		return self.obtenerEjercicioResuelto(nLec, nCont)
	elif(tipo == 'T'):
		return self.obtenerTeoriaResuelta(nLec, nCont)

		
    def obtenerTeoriaResuelta(self, nLec, nTeo):
	idTarea = str(nLec) +'-T-'+ str(nTeo)
	return self.obtenerTarea(idTarea)

    def obtenerEjercicioResuelto(self, nLec, nEje):
	idTarea = str(nLec) +'-E-'+ str(nEje)
	return self.obtenerTarea(idTarea)


    def obtenerResultadoMarcado(self, nLec, nroContenido, tipoContenido):
	if(tipoContenido == 'T'):
		resMarcado = self.obtenerTeoriaResuelta(nLec, nroContenido)
		if (resMarcado != None):
			return resMarcado.getItemElegido()
		else:
			return None
	if(tipoContenido == 'E'):
		resMarcado = self.obtenerEjercicioResuelto(nLec, nroContenido)
		if (resMarcado != None):
			return resMarcado.getItemElegido()
		else:
			return None


    def calcularCantidadResueltos(self, nLec):
	self.cantE = 0
	self.cantT = 0
	self.Tareas = self.get_entidad('title','bdcontenidos.listaTareas')
	if(self.Tareas == None):
		return None
	for tid in self.Tareas:
		t = self.Tareas[tid]
		if(t.getNroLeccion() == nLec and t.getTipoContenido() == 'E'):
			self.cantE = self.cantE + 1
		elif (t.getNroLeccion() == nLec and t.getTipoContenido() == 'T'):
			self.cantT = self.cantT + 1

    def getCantidadEjeResuelto(self):
	return self.cantE

    def getCantidadTeoResuelta(self):
	return self.cantT


